﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace TwoGesture
{
    public partial class Seleccion_Participantes : Form
    {
        private ControlAgregarParticipante ObjCtrAgregarPart = ControlAgregarParticipante.singleton();
        private static Seleccion_Participantes objSeleccionar=null;
        private string iddoc = AsignarCuest.singleton().LblIdDoctor.Text;
        Participante[] cuest = null;
        Participante[] usuario = null;

        public Seleccion_Participantes()
        {
            InitializeComponent();
            tablaUsuarioCuestionario();
            llenarUsuarioSelec();
            llenartablacuestionario();
        }

        public static Seleccion_Participantes singleton()
        {
            if (objSeleccionar == null)
            {
                objSeleccionar = new Seleccion_Participantes();
            }
            return objSeleccionar;
        }

        public static void nuevo()
        {
            objSeleccionar = new Seleccion_Participantes();
        }

        private void btnAgregarParticipante_Click(object sender, EventArgs e)
        {

        }

        public void tablaUsuarioCuestionario()
        {
            SqlDataReader dr = ObjCtrAgregarPart.LlenarTabla();
            dgvCuestUsuario.ColumnCount = 2;
            dgvCuestUsuario.Columns[0].Name = "ID";
            dgvCuestUsuario.Columns[0].Visible = false;
            dgvCuestUsuario.Columns[1].Name = "Participantes no seleccionados";
            dgvCuestUsuario.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;

            dgvCuestUsuario.Rows.Clear();

            while (dr.Read())
            {
                dgvCuestUsuario.Rows.Add(dr.GetInt32(0), dr.GetString(1) + " " + dr.GetString(2) + " " + dr.GetString(3));
            }

            this.dgvCuestUsuario.CellDoubleClick += (this.dgvUsuarios_click);
        }

        public void llenarUsuarioSelec()
        {
            SqlDataReader dr = ObjCtrAgregarPart.LlenarTabla();
            dgvUsuarioSelec.ColumnCount = 2;
            dgvUsuarioSelec.Columns[0].Name = "ID";
            dgvUsuarioSelec.Columns[0].Visible = false;
            dgvUsuarioSelec.Columns[1].Name = "Participantes seleccionados";
            dgvUsuarioSelec.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;

            dgvUsuarioSelec.Rows.Clear();

            this.dgvUsuarioSelec.CellDoubleClick += (this.dgvUsuarioSelec_click);
        }


        public void dgvUsuarios_click(object sender, DataGridViewCellEventArgs e)
        {
            dgvUsuarioSelec.Rows.Add(dgvCuestUsuario.Rows[e.RowIndex].Cells[0].Value.ToString(),
                dgvCuestUsuario.Rows[e.RowIndex].Cells[1].Value.ToString());
            dgvCuestUsuario.Rows.Remove(dgvCuestUsuario.Rows[e.RowIndex]);
        }
        public void dgvUsuarioSelec_click(object sender, DataGridViewCellEventArgs e)
        {
            dgvCuestUsuario.Rows.Add(dgvUsuarioSelec.Rows[e.RowIndex].Cells[0].Value.ToString(),
                dgvUsuarioSelec.Rows[e.RowIndex].Cells[1].Value.ToString());
            dgvUsuarioSelec.Rows.Remove(dgvUsuarioSelec.Rows[e.RowIndex]);
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            AsignarCuest a = AsignarCuest.singleton();
            dgvCuestUsuario.Rows.Clear();
            for (int i = 0; i < cuest.Length; i++)
            {
                dgvCuestUsuario.Rows.Add(cuest[i].id,cuest[i].nombre);
            }
            dgvUsuarioSelec.Rows.Clear();
            for (int i = 0; i < usuario.Length; i++)
            {
                dgvUsuarioSelec.Rows.Add(usuario[i].id,usuario[i].nombre);
            }
           
            a.Enabled=true;
            
            this.Hide();
        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            AsignarCuest a = AsignarCuest.singleton();
            a.dgvParticipantesLista.ColumnCount = 3;
            a.dgvParticipantesLista.Columns[0].Name = "ID";
            a.dgvParticipantesLista.Columns[0].Visible = false;
            a.dgvParticipantesLista.Columns[1].Name = "Participante(s)";
            a.dgvParticipantesLista.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            a.dgvParticipantesLista.Columns[2].Name = "Esta del Cuestionario";
            a.dgvParticipantesLista.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            
            for (int i = 0; i < dgvUsuarioSelec.RowCount; i++)
            {
                for (int j = 0; j < a.dgvParticipantesLista.RowCount; j++)
                {
                    if (a.dgvParticipantesLista.Rows[j].Cells[0].Value.ToString().Equals(dgvUsuarioSelec.Rows[i].Cells[0].Value.ToString()))
                    {
                        a.dgvParticipantesLista.Rows.Add(dgvUsuarioSelec.Rows[i].Cells[0].Value.ToString(),
                            dgvUsuarioSelec.Rows[i].Cells[1].Value.ToString(), "En proceso");
                    }
                }
            }
            a.lblidUsuarioN.Text = a.dgvParticipantesLista.RowCount.ToString();
            a.Enabled = true;

            this.Hide();

        }

        public void llenartablacuestionario()
        {
            SqlDataReader dr = ObjCtrAgregarPart.llenarTablaTest(iddoc);
            dgvSelecCues.ColumnCount = 2;
            dgvSelecCues.Columns[0].Name = "Nombre";
            dgvSelecCues.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            dgvSelecCues.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
            dgvSelecCues.Columns[1].Name = "id";
            dgvSelecCues.Columns[1].Visible = false;
            dgvSelecCues.Rows.Clear();

            while (dr.Read())
            {
                dgvSelecCues.Rows.Add(dr.GetString(1), dr.GetInt32(0));
            }

            //this.dgvCuest.CellClick += (this.dgvTest_Click);

        }

      


        public void copia()
        {
            usuario=new Participante[dgvUsuarioSelec.RowCount];
            for (int i = 0; i < dgvUsuarioSelec.RowCount; i++)
            {
                usuario[i]=new Participante(){id=dgvUsuarioSelec.Rows[i].Cells[0].Value.ToString(),
                    nombre=dgvUsuarioSelec.Rows[i].Cells[1].Value.ToString()};
            }
            cuest = new Participante[dgvCuestUsuario.RowCount];
            for (int i = 0; i < dgvCuestUsuario.RowCount; i++)
            {
                cuest[i] = new Participante()
                {
                    id = dgvCuestUsuario.Rows[i].Cells[0].Value.ToString(),
                    nombre = dgvCuestUsuario.Rows[i].Cells[1].Value.ToString()
                };
            }
        }

        internal void llenartablaotra(string p)
        {
            SqlDataReader dr = ObjCtrAgregarPart.LlenarTabla2(p);
            dgvCuestUsuario.ColumnCount = 2;
            dgvCuestUsuario.Columns[0].Name = "ID";
            dgvCuestUsuario.Columns[0].Visible = false;
            dgvCuestUsuario.Columns[1].Name = "Participantes no seleccionados";
            dgvCuestUsuario.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;

            dgvCuestUsuario.Rows.Clear();

            while (dr.Read())
            {
                dgvCuestUsuario.Rows.Add(dr.GetInt32(0), dr.GetString(1) + " " + dr.GetString(2) + " " + dr.GetString(3));
            }
        }
    }
}
